package cn.tedu.collection.list;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ListDemo {
    public static void main(String[] args) {
        //创建集合对象---向上造型
        List<String> list=new ArrayList<>();
        //添加元素
        list.add("abc");
        list.add("bc");
        list.add("ac");
        list.add("ab");
        list.add("ab");
        list.add("1abc");
        //插入元素
        //最大支持的下标---元素个数
        list.add(6,"123");

        //根据下标来删除指定元素
        //最大支持的删除下标---元素个数-1
        list.remove(6);
        //根据指定内容来删除
        //没有找到指定元素内容就不做任何操作
        //只能删除最其前面的一个重复元素
        //list.remove("ab");

        //清空列表
        //list.clear();

        //判断集合中是否包含指定内容
        //System.out.println(list.contains("abc"));

        //返回指定下标对应的内容
        //最大支持下标---元素个数-1
        //System.out.println(list.get(0));

        //返回指定内容在集合中第一次出现下标值
        //如果指定内容没有在集合中出现返回-1
        //System.out.println(list.indexOf("ab1"));

        //判断集合是否为空
        //System.out.println(list.isEmpty());

        //替换元素
        //最大支持下标---元素个数-1
        //list.set(0,"857");

        //元素个数
        //System.out.println(list.size());

        //截取子列表
        //左包右不包
        System.out.println(list.subList(0,4));

        //没有指定新数组方法返回的数组类型一定是Object类型
        //但是后续如果想做具体的操作还需要遍历数组元素强转类型
        Object[] os=list.toArray();
        /*//遍历数组
        for(Object o:os){
            //转成String类型
            String str=(String) o;
        }*/
        //toArray(T[] a=new String[];)
        //集合转成数组过程中指定新数组对象按照数组元素类型
        //当做方法返回的数组的元素类型
        //给定的新数组的长度值最后小于等于元素个数
        String[] ss=list.toArray(new String[0]);
        System.out.println(Arrays.toString(ss));
        //存储数据有序
        System.out.println(list);
    }
}








